﻿namespace Communication.Enums;

public enum ModbusFunctionCode : byte
{
    None = 0, // 无效功能码

    // 位操作功能码
    ReadCoils = 0x01, // 读取线圈寄存器（1位）
    ReadDiscreteInputs = 0x02, // 读取离散输入寄存器（1位）
    ReadHoldingRegisters = 0x03, // 读取保持寄存器（16位）
    ReadInputRegisters = 0x04, // 读取输入寄存器（16位）
    WriteSingleCoil = 0x05, // 写单个线圈寄存器

    // 16位寄存器操作功能码
    WriteSingleRegister = 0x06, // 写单个保持寄存器
    WriteMultipleCoils = 0x0F, // 写多个线圈寄存器
    WriteMultipleRegisters = 0x10, // 写多个保持寄存器

    // 特殊功能码
    MaskWriteRegister = 0x16, // 掩码写寄存器（AND/OR操作）
    ReadWriteMultipleRegisters = 0x17, // 同时读写多个寄存器

    // 异常响应码（功能码 + 0x80）
    ExceptionOffset = 0x80 // 异常码偏移量（如读线圈异常码为0x81）
}